package com.glela.platform.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.glela.platform.model.UserAddress;

public interface UserAddressMapper {

	/**
	 * 查询我的收货地址列表
	 * 
	 * @param userId
	 * @param pagelimit
	 * @param pageSize
	 * @return List<UserAddress>
	 */
	public List<UserAddress> selectUserAddressPage(@Param("userId") long userId, @Param("pagelimit") int pagelimit, @Param("pageSize") int pageSize);

	/**
	 * 添加收货地址
	 * 
	 * @param UserAddress
	 * @return
	 */
	public int insertUserAddress(UserAddress userAddress);

	/**
	 * 修改收货地址
	 * 
	 * @param
	 * @return
	 */
	public int updateUseraddressByuserId(UserAddress userAddress);

	/**
	 * 修改默认收货地址为0
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public int updateUserNoIsdefault(@Param("id") long id, @Param("userId") long userId);

	/**
	 * 更新指定地址为非默认
	 *
	 * @param id
	 * @param userId
	 * @return
	 */
	public int updateUserNoIsdefault1(@Param("id") long id, @Param("userId") long userId);

	/**
	 * 根据id查询收货地址
	 * 
	 * @param
	 * @return
	 */
	public UserAddress selectUserAddressById(long id);

	/**
	 * 根据id查询我的默认收货地址
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public UserAddress selectDefaultAddress(long userId);

	/**
	 * 查询最近添加的一条记录
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public UserAddress selectUserAddressorderby(long userId);

	/**
	 * 删除收货地址
	 * 
	 * @param id
	 * @param userId
	 * @return
	 */
	public int deleteUseraddressByuserId(@Param("userId") long userId, @Param("id") long id);

	/**
	 * 查询是否是默认地址
	 * 
	 * @param userId
	 * @return
	 */
	public UserAddress selectUserAddressIsDefaultInOne(long id);

	/**
	 * 默认收货地址修改
	 * 
	 * @param userId
	 * @param addressId
	 */
	public int updateUserAddressDefault(@Param("userId") long userId, @Param("addressId") long addressId);

	/**
	 * 查询收货地址的数量
	 * 
	 * @param userId
	 * @param addressId
	 * @return
	 */
	public int selectUserAddressCount(long userId);

	/**
	 * 判断是否为当前用户的地址
	 * 
	 * @param userId
	 * @param addressId
	 * @return
	 */
	public int selectJudeUserAddress(@Param("userId") long userId, @Param("addressId") long addressId);

	public List<UserAddress> selectAll(long userId);

}
